﻿

namespace LprMiddleWare.HangWang
{
    public partial class NativeConstants
    {

        /// HW_CONTROL_LINK -> 
        /// Error generating expression: 值不能为空。
        ///参数名: node
        public const string HW_CONTROL_LINK = "";

        /// HWCTRL_MAX_CAM_HDx11x8 -> 4
        public const int HWCTRL_MAX_CAM_HDx11x8 = 4;

        /// HWCTRL_MAX_WAY_HDx11x8 -> 6
        public const int HWCTRL_MAX_WAY_HDx11x8 = 6;

        /// HWCTRL_MAX_CAM_HKx11xN -> 10
        public const int HWCTRL_MAX_CAM_HKx11xN = 10;

        /// HWCTRL_MAX_WAY_HKx11xN -> 8
        public const int HWCTRL_MAX_WAY_HKx11xN = 8;

        /// HWCTRL_MAX_CAM_HKx22xN -> 10
        public const int HWCTRL_MAX_CAM_HKx22xN = 10;

        /// HWCTRL_MAX_WAY_HKx22xN -> 8
        public const int HWCTRL_MAX_WAY_HKx22xN = 8;
    }

    public enum tagHWCtrlEventType
    {

        /// HWCTRL_EVENT_INFO -> 0
        HWCTRL_EVENT_INFO = 0,

        /// HWCTRL_EVENT_WARNING -> 1
        HWCTRL_EVENT_WARNING = 1,

        /// HWCTRL_EVENT_ERROR -> 2
        HWCTRL_EVENT_ERROR = 2,

        /// HWCTRL_EVENT_ESTABLISH -> 3
        HWCTRL_EVENT_ESTABLISH = 3,

        /// HWCTRL_EVENT_LINK_FAIL -> 4
        HWCTRL_EVENT_LINK_FAIL = 4,

        /// HWCTRL_EVENT_BREAK -> 5
        HWCTRL_EVENT_BREAK = 5,
    }

    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
    public struct tagHWCtrlEvent
    {

        /// HWCtrlEventType->tagHWCtrlEventType
        public tagHWCtrlEventType type;

        /// WCHAR*
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPWStr)]
        public string szMsg;

        /// SYSTEMTIME->_SYSTEMTIME
        public SYSTEMTIME time;

        /// void*
        public System.IntPtr pUserParam;
    }

    /// Return Type: void
    ///event: HWCtrlEvent->tagHWCtrlEvent
    [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
    public delegate void HWCtrlLinkCallback(tagHWCtrlEvent @event);

    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential, CharSet = System.Runtime.InteropServices.CharSet.Unicode)]
    public struct tagHWCtrlQuery
    {

        /// HWCtrlEventType->tagHWCtrlEventType
        public tagHWCtrlEventType type;

        /// WCHAR[256]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValTStr, SizeConst = 256)]
        public string szMsg;

        /// SYSTEMTIME->_SYSTEMTIME
        public SYSTEMTIME time;
    }

    public enum tagHWCtrlCommand
    {

        /// HWCTRL_COMMAND_REBOOT -> 0
        HWCTRL_COMMAND_REBOOT = 0,

        /// HWCTRL_COMMAND_REBOOT_CANCEL -> 1
        HWCTRL_COMMAND_REBOOT_CANCEL = 1,

        /// HWCTRL_COMMAND_DEVICE_INFO -> 2
        HWCTRL_COMMAND_DEVICE_INFO = 2,

        /// HWCTRL_COMMAND_GET_PARAM -> 3
        HWCTRL_COMMAND_GET_PARAM = 3,

        /// HWCTRL_COMMAND_UPDATE_PARAM -> 4
        HWCTRL_COMMAND_UPDATE_PARAM = 4,

        /// HWCTRL_COMMAND_UPDATE_FIRMWARE -> 5
        HWCTRL_COMMAND_UPDATE_FIRMWARE = 5,

        /// HWCTRL_COMMAND_SEARCH_DEVICE -> 6
        HWCTRL_COMMAND_SEARCH_DEVICE = 6,

        /// HWCTRL_COMMAND_UPDATE_TIME -> 7
        HWCTRL_COMMAND_UPDATE_TIME = 7,

        /// HWCTRL_COMMAND_USE_CAM_APPLY -> 8
        HWCTRL_COMMAND_USE_CAM_APPLY = 8,

        /// HWCTRL_COMMAND_USE_CAM_END -> 9
        HWCTRL_COMMAND_USE_CAM_END = 9,

        /// HWCTRL_COMMAND_REPOWER -> 10
        HWCTRL_COMMAND_REPOWER = 10,

        /// HWCTRL_COMMAND_REPOWER_CANCEL -> 11
        HWCTRL_COMMAND_REPOWER_CANCEL = 11,

        /// HWCTRL_COMMAND_GET_STORE_INFO -> 12
        HWCTRL_COMMAND_GET_STORE_INFO = 12,

        /// HWCTRL_COMMAND_RESET_PARAM -> 13
        HWCTRL_COMMAND_RESET_PARAM = 13,

        /// HWCTRL_COMMAND_GET_TIME -> 14
        HWCTRL_COMMAND_GET_TIME = 14,
    }

    public enum tagHWCtrlParamType
    {

        /// HWCTRL_PARAM_OTHER -> 0
        HWCTRL_PARAM_OTHER = 0,

        /// HWCTRL_PARAM_CENTER -> 1
        HWCTRL_PARAM_CENTER = 1,

        /// HWCTRL_PARAM_TRANSFER -> 2
        HWCTRL_PARAM_TRANSFER = 2,

        /// HWCTRL_PARAM_JOINT -> 3
        HWCTRL_PARAM_JOINT = 3,

        /// HWCTRL_PARAM_RECORDER -> 4
        HWCTRL_PARAM_RECORDER = 4,

        /// HWCTRL_PARAM_HEPC -> 5
        HWCTRL_PARAM_HEPC = 5,

        /// HWCTRL_PARAM_HDx11x8 -> 6
        HWCTRL_PARAM_HDx11x8 = 6,

        /// HWCTRL_PARAM_HKx11xN -> 7
        HWCTRL_PARAM_HKx11xN = 7,

        /// HWCTRL_PARAM_HKx22xN -> 8
        HWCTRL_PARAM_HKx22xN = 8,
    }

    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential, CharSet = System.Runtime.InteropServices.CharSet.Unicode)]
    public struct tagHWCtrlDeviceInfo
    {

        /// WCHAR[16]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValTStr, SizeConst = 16)]
        public string type;

        /// WCHAR[32]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValTStr, SizeConst = 32)]
        public string name;

        /// WCHAR[32]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValTStr, SizeConst = 32)]
        public string sn;

        /// WCHAR[32]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValTStr, SizeConst = 32)]
        public string ver;

        /// HWCtrlParamType->tagHWCtrlParamType
        public tagHWCtrlParamType paramtype;

        /// unsigned int
        public uint ip;

        /// unsigned int
        public uint netmask;

        /// unsigned int
        public uint maxWay;

        /// unsigned int
        public uint maxCam;

        /// unsigned int
        public uint maxRed;

        /// unsigned int
        public uint lCurVoltage;

        /// unsigned int
        public uint lCurElectricity;

        /// unsigned int
        public uint lCurLeak;

        /// unsigned int
        public uint lCurLeakAct;
    }

    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
    public struct tagHWCtrlDeviceTime
    {

        /// unsigned short
        public ushort year;

        /// unsigned short
        public ushort month;

        /// unsigned short
        public ushort day;

        /// unsigned short
        public ushort hour;

        /// unsigned short
        public ushort minute;

        /// unsigned short
        public ushort second;

        /// unsigned short
        public ushort msecond;
    }

    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
    public struct tagHWCtrlStoreInfo
    {

        /// unsigned __int64
        public ulong total;

        /// unsigned __int64
        public ulong free;

        /// unsigned char
        public byte enable;
    }

    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential, CharSet = System.Runtime.InteropServices.CharSet.Unicode)]
    public struct tagHWCtrlParamHDx11x8
    {

        /// WCHAR[32]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValTStr, SizeConst = 32)]
        public string szDeviceName;

        /// unsigned int
        public uint lDeviceIP;

        /// unsigned int
        public uint lDeviceNetMask;

        /// unsigned int
        public uint lDeviceGateway;

        /// unsigned int
        public uint lDrivewayNum;

        /// unsigned int
        public uint lCameraNum;

        /// unsigned int
        public uint lCenterIP;

        /// unsigned int
        public uint lCenterPort;

        /// WCHAR[32]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValTStr, SizeConst = 32)]
        public string szCenterName;

        /// unsigned int
        public uint lCenterIP2;

        /// unsigned int
        public uint lCenterPort2;

        /// WCHAR[32]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValTStr, SizeConst = 32)]
        public string szCenterName2;

        /// unsigned int
        public uint lInspectCamLose;

        /// unsigned int
        public uint lInspectCenterLose;

        /// unsigned int
        public uint lInspectLoopSecond;

        /// unsigned int
        public uint lInspectLoopNum;

        /// unsigned int
        public uint lInspectMyLose;

        /// unsigned int
        public uint lInspectIgnore;

        /// unsigned int
        public uint lInspectResetPower;

        /// unsigned int
        public uint lInspectTimerLen;

        /// unsigned int
        public uint lInspectErrorBuf;

        /// unsigned int
        public uint lInspectLeakEnable;

        /// unsigned int
        public uint lInspectElecProtect;

        /// unsigned int
        public uint lInspectVolProtect;

        /// unsigned int
        public uint lInspectResetTime;

        /// unsigned int
        public uint lCapNormal;

        /// unsigned int
        public uint lCapConverse;

        /// unsigned int
        public uint lCapOverSpeed;

        /// unsigned int
        public uint lCapWrongWay;

        /// unsigned int
        public uint lPeccancyPicNum;

        /// unsigned int
        public uint lNormalPicNum;

        /// unsigned int
        public uint lCapSpeed;

        /// unsigned int
        public uint lSmallCarMaxLen;

        /// unsigned int
        public uint lCapTwoLoopOnly;

        /// unsigned int
        public uint lAutoFilter;

        /// unsigned int[4]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lCameraType;

        /// unsigned int[4]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lCYJIP;

        /// unsigned int[4]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lCYJCapSpace;

        /// unsigned int[4]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lCYJCaptureTimeOut;

        /// unsigned int[4]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lCYJSwitchFlash;

        /// unsigned int[4]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lCYJFlashMode;

        /// unsigned int[4]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lExtSyncDelay;

        /// unsigned int[4]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lCamPort;

        /// unsigned int[4]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lFlashType;

        /// unsigned int[4]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lAGCLimit;

        /// unsigned int[4]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lMaxGainCap;

        /// unsigned int[4]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lMaxGainVideo;

        /// unsigned int[4]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lMaxTimeCap;

        /// unsigned int[4]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lMaxTimeVideo;

        /// unsigned int[4]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lMinTimeCap;

        /// unsigned int[4]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lCamFix;

        /// unsigned int[4]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lMinGainCap;

        /// unsigned int[4]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lNightExp;

        /// unsigned int[4]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lNightGain;

        /// unsigned short[8]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U2)]
        public ushort[] sExpTimeBegin;

        /// unsigned short[8]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U2)]
        public ushort[] sExpTimeEnd;

        /// unsigned int[8]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lExpTimeAGCLimit;

        /// unsigned int[8]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lExpTimeFlashMode;

        /// unsigned int[8]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lExpTimeMaxGain;

        /// unsigned int[8]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lExpTimeMaxTime;

        /// unsigned int[8]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lExpTimeMinGain;

        /// unsigned int[8]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lExpTimeMinTime;

        /// unsigned int[8]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lExpTimeNightExp;

        /// unsigned int[8]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lExpTimeNightGain;

        /// char[64]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = System.Runtime.InteropServices.UnmanagedType.I1)]
        public byte[] szCamUserName;

        /// char[64]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 64, ArraySubType = System.Runtime.InteropServices.UnmanagedType.I1)]
        public byte[] szCamPassword;

        /// unsigned int[6]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lDisable;

        /// unsigned int[6]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lCamIndex;

        /// unsigned int[6]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lFlashChannel;

        /// unsigned int[6]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lLoopChannel;

        /// unsigned int[6]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lRedChannel1;

        /// unsigned int[6]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lRedChannel2;

        /// unsigned int[6]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lLoopSpace;

        /// unsigned int[6]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lLoopLen;

        /// unsigned int[6]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lLoopTimeOut;

        /// unsigned int[6]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lForwardSpace;

        /// unsigned int[6]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lMaxForwardTime;

        /// unsigned int[6]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lRushRedJudge;

        /// unsigned int[6]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lWrongWayJudge;

        /// unsigned int[6]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lThrowLeft;

        /// unsigned int[6]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lDrivewayType;

        /// unsigned int[6]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lNeedAllRed;

        /// unsigned int[6]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 6, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lSwitchL1L2;
    }

    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential, CharSet = System.Runtime.InteropServices.CharSet.Unicode)]
    public struct tagHWCtrlParamHKx11xN
    {

        /// WCHAR[32]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValTStr, SizeConst = 32)]
        public string szDeviceName;

        /// unsigned int
        public uint lDeviceIP;

        /// unsigned int
        public uint lDeviceNetMask;

        /// unsigned int
        public uint lDeviceGateway;

        /// unsigned int
        public uint lDrivewayNum;

        /// unsigned int
        public uint lCameraNum;

        /// unsigned int
        public uint lCenterIP;

        /// unsigned int
        public uint lCenterPort;

        /// WCHAR[32]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValTStr, SizeConst = 32)]
        public string szCenterName;

        /// unsigned int
        public uint lCenterIP2;

        /// unsigned int
        public uint lCenterPort2;

        /// WCHAR[32]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValTStr, SizeConst = 32)]
        public string szCenterName2;

        /// unsigned int
        public uint lInspectCamLose;

        /// unsigned int
        public uint lInspectCenterLose;

        /// unsigned int
        public uint lInspectLoopSecond;

        /// unsigned int
        public uint lInspectLoopNum;

        /// unsigned int
        public uint lInspectMyLose;

        /// unsigned int
        public uint lInspectIgnore;

        /// unsigned int
        public uint lInspectResetPower;

        /// unsigned int
        public uint lInspectTimerLen;

        /// unsigned int
        public uint lInspectErrorBuf;

        /// unsigned int
        public uint lInspectLeakEnable;

        /// unsigned int
        public uint lInspectElecProtect;

        /// unsigned int
        public uint lInspectVolProtect;

        /// unsigned int
        public uint lInspectResetTime;

        /// unsigned int
        public uint lCapNormal;

        /// unsigned int
        public uint lCapSpeedSmall;

        /// unsigned int
        public uint lCapSpeedLarge;

        /// unsigned int
        public uint lSmallCarMaxLen;

        /// unsigned int
        public uint lStrongJudge;

        /// unsigned int
        public uint lThrowMoto;

        /// unsigned int
        public uint lAutoFilter;

        /// unsigned int
        public uint lPeccancyPicNum;

        /// unsigned int
        public uint lNormalPicNum;

        /// unsigned int
        public uint lConverseJudge;

        /// unsigned int[10]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 10, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lCameraType;

        /// unsigned int[10]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 10, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lCYJIP;

        /// unsigned int[10]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 10, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lCYJCapSpace;

        /// unsigned int[10]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 10, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lCYJCaptureTimeOut;

        /// unsigned int[10]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 10, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lCYJSwitchFlash;

        /// unsigned int[10]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 10, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lCYJFlashMode;

        /// unsigned int[10]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 10, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lExtSyncDelay;

        /// unsigned int[10]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 10, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lCamPort;

        /// unsigned int[10]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 10, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lFlashType;

        /// unsigned int[10]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 10, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lAGCLimit;

        /// unsigned int[10]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 10, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lMaxGainCap;

        /// unsigned int[10]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 10, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lMaxGainVideo;

        /// unsigned int[10]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 10, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lMaxTimeCap;

        /// unsigned int[10]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 10, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lMaxTimeVideo;

        /// unsigned int[10]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 10, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lMinTimeCap;

        /// unsigned int[10]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 10, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lMinGainCap;

        /// unsigned int[10]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 10, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lNightExp;

        /// unsigned int[10]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 10, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lNightGain;

        /// unsigned short[20]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U2)]
        public ushort[] sExpTimeBegin;

        /// unsigned short[20]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U2)]
        public ushort[] sExpTimeEnd;

        /// unsigned int[20]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lExpTimeAGCLimit;

        /// unsigned int[20]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lExpTimeFlashMode;

        /// unsigned int[20]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lExpTimeMaxGain;

        /// unsigned int[20]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lExpTimeMaxTime;

        /// unsigned int[20]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lExpTimeMinGain;

        /// unsigned int[20]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lExpTimeMinTime;

        /// unsigned int[20]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lExpTimeNightExp;

        /// unsigned int[20]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 20, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lExpTimeNightGain;

        /// char[160]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 160, ArraySubType = System.Runtime.InteropServices.UnmanagedType.I1)]
        public byte[] szCamUserName;

        /// char[160]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 160, ArraySubType = System.Runtime.InteropServices.UnmanagedType.I1)]
        public byte[] szCamPassword;

        /// unsigned int[8]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lDisable;

        /// unsigned int[8]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lCamIndexMain;

        /// unsigned int[8]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lFlashChannelMain;

        /// unsigned int[8]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lCamIndexSub;

        /// unsigned int[8]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lSubCamAction;

        /// unsigned int[8]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lFlashChannelSub;

        /// unsigned int[8]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lLoopChannel;

        /// unsigned int[8]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lLoopSpace;

        /// unsigned int[8]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lLoopLen;

        /// unsigned int[8]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lLoopTimeOut;

        /// unsigned int[8]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lSecondPicSpace;

        /// unsigned int[8]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lSecondPicMax;

        /// unsigned int[8]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lDrivewayType;
    }

    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential, CharSet = System.Runtime.InteropServices.CharSet.Unicode)]
    public struct tagHWCtrlParamHKx22xN
    {

        /// WCHAR[32]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValTStr, SizeConst = 32)]
        public string szDeviceName;

        /// unsigned int
        public uint lDeviceIP;

        /// unsigned int
        public uint lDeviceNetMask;

        /// unsigned int
        public uint lDeviceGateway;

        /// unsigned int
        public uint lDrivewayNum;

        /// unsigned int
        public uint lCameraNum;

        /// unsigned int
        public uint lCenterIP;

        /// unsigned int
        public uint lCenterPort;

        /// WCHAR[32]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValTStr, SizeConst = 32)]
        public string szCenterName;

        /// unsigned int
        public uint lCenterIP2;

        /// unsigned int
        public uint lCenterPort2;

        /// WCHAR[32]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValTStr, SizeConst = 32)]
        public string szCenterName2;

        /// unsigned int
        public uint lInspectCamLose;

        /// unsigned int
        public uint lInspectCenterLose;

        /// unsigned int
        public uint lInspectRadarLose;

        /// unsigned int
        public uint lInspectMyLose;

        /// unsigned int
        public uint lInspectIgnore;

        /// unsigned int
        public uint lInspectResetPower;

        /// unsigned int
        public uint lInspectTimerLen;

        /// unsigned int
        public uint lInspectErrorBuf;

        /// unsigned int
        public uint lInspectLeakEnable;

        /// unsigned int
        public uint lInspectElecProtect;

        /// unsigned int
        public uint lInspectVolProtect;

        /// unsigned int
        public uint lInspectResetTime;

        /// unsigned int
        public uint lCapNormal;

        /// unsigned int
        public uint lPeccancyPicNum;

        /// unsigned int
        public uint lNormalPicNum;

        /// unsigned int
        public uint lConverseJudge;

        /// unsigned int
        public uint lSmallCarMaxLen;

        /// unsigned int
        public uint lThrowSpeedCount;

        /// unsigned int[10]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 10, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lCameraType;

        /// unsigned int[10]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 10, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lCYJIP;

        /// unsigned int[10]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 10, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lCYJCaptureTimeOut;

        /// unsigned int[10]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 10, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lCYJSwitchFlash;

        /// unsigned int[10]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 10, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lCYJFlashMode;

        /// unsigned int[10]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 10, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lCYJWhiteMode;

        /// unsigned int[10]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 10, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lCYJWhiteDefault;

        /// unsigned int[10]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 10, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lCYJWhiteInspect;

        /// unsigned int[10]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 10, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lCYJCapSpace;

        /// unsigned int[10]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 10, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lAGCLimit;

        /// unsigned int[10]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 10, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lMaxGainCap;

        /// unsigned int[10]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 10, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lMaxTimeCap;

        /// unsigned int[10]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 10, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lMinTimeCap;

        /// unsigned int[8]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lDisable;

        /// unsigned int[8]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lRadarType;

        /// unsigned int[8]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lRadarISKRA_P;

        /// unsigned int[8]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lRadarConverse;

        /// unsigned int[8]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lCamIndexMain;

        /// unsigned int[8]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lCamIndexSub;

        /// unsigned int[8]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lSubCamAction;

        /// unsigned int[8]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lLimitSmallLow;

        /// unsigned int[8]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lLimitSmallHigh;

        /// unsigned int[8]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lLimitLargeLow;

        /// unsigned int[8]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lLimitLargeHigh;

        /// unsigned int[8]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lSecondPicSpace;

        /// unsigned int[8]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lSecondPicMax;

        /// unsigned int[8]
        [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst = 8, ArraySubType = System.Runtime.InteropServices.UnmanagedType.U4)]
        public uint[] lDrivewayType;
    }

    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
    public struct tagHWCtrlLinkParam
    {

        /// unsigned int
        public uint ip;

        /// unsigned short
        public ushort port;

        /// HWCtrlLinkCallback
        public HWCtrlLinkCallback callback;

        /// void*
        public System.IntPtr pUserParam;
    }

    [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
    public struct SYSTEMTIME
    {

        /// WORD->unsigned short
        public ushort wYear;

        /// WORD->unsigned short
        public ushort wMonth;

        /// WORD->unsigned short
        public ushort wDayOfWeek;

        /// WORD->unsigned short
        public ushort wDay;

        /// WORD->unsigned short
        public ushort wHour;

        /// WORD->unsigned short
        public ushort wMinute;

        /// WORD->unsigned short
        public ushort wSecond;

        /// WORD->unsigned short
        public ushort wMilliseconds;
    }

    public partial class NativeMethods
    {

        /// Return Type: void
        ///param: HWCtrlLinkParam->tagHWCtrlLinkParam
        [System.Runtime.InteropServices.DllImportAttribute("HWControlLink", EntryPoint = "HWCtrlLinkConnect", CallingConvention = System.Runtime.InteropServices.CallingConvention.StdCall)]
        public static extern void HWCtrlLinkConnect(tagHWCtrlLinkParam param);


        /// Return Type: boolean
        ///command: HWCtrlCommand->tagHWCtrlCommand
        ///param1: void*
        ///param2: void*
        ///dwWaitExecute: unsigned int
        [System.Runtime.InteropServices.DllImportAttribute("HWControlLink", EntryPoint = "HWCtrlLinkCommand", CallingConvention = System.Runtime.InteropServices.CallingConvention.StdCall)]
        [return: System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.I1)]
        public static extern bool HWCtrlLinkCommand(tagHWCtrlCommand command, System.IntPtr param1, System.IntPtr param2, uint dwWaitExecute);


        /// Return Type: boolean
        [System.Runtime.InteropServices.DllImportAttribute("HWControlLink", EntryPoint = "HWCtrlLinkIsWorking", CallingConvention = System.Runtime.InteropServices.CallingConvention.StdCall)]
        [return: System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.I1)]
        public static extern bool HWCtrlLinkIsWorking();


        /// Return Type: void
        ///pEvent: HWCtrlQuery*
        ///pNum: int*
        [System.Runtime.InteropServices.DllImportAttribute("HWControlLink", EntryPoint = "HWCtrlLinkQueryEvent", CallingConvention = System.Runtime.InteropServices.CallingConvention.StdCall)]
        public static extern void HWCtrlLinkQueryEvent(ref tagHWCtrlQuery pEvent, ref int pNum);


        /// Return Type: void
        [System.Runtime.InteropServices.DllImportAttribute("HWControlLink", EntryPoint = "HWCtrlLinkClose", CallingConvention = System.Runtime.InteropServices.CallingConvention.StdCall)]
        public static extern void HWCtrlLinkClose();

    }


}

